home *** CD-ROM | disk | FTP | other *** search
/ Ham Radio 2000 #2 / Ham Radio 2000 - Volume 2.iso / HAMV2 / MISC / HCAL-27 / INDUCALC.BAS (.txt) < prev    next >
Encoding:
GW-BASIC  |  1997-01-28  |  21.9 KB  |  684 lines

  1. 10  'INDUCALC - Inductance Calculator - 28 NOV 95 rev. 27 SEP 96
  2. 20  IF EX$=""THEN EX$="EXIT"
  3. 30  CLS:KEY OFF
  4. 40  RESTORE
  5. 50  COLOR 7,0,1
  6. 60  PI=3.14159
  7. 70  UL$=STRING$(80,205)
  8. 80  U$="####.###"
  9. 90  V$="#####.##"
  10. 100  ON ERROR GOTO 5960
  11. 110  '
  12. 120  COLOR 15,2
  13. 130  PRINT " INDUCTANCE CALCULATOR";TAB(62);"by Bob Stein W6NBI ";
  14. 140  PRINT STRING$(80,32);
  15. 150  LOCATE CSRLIN-1,20:PRINT "edited for HAMCALC by George Murphy VE3ERP"
  16. 160  COLOR 1,0:PRINT STRING$(80,223);:COLOR 7,0
  17. 170  '
  18. 180  PRINT " Press letter in < > to calculate:"
  19. 190  PRINT UL$;
  20. 200  PRINT "  <a> INDUCTANCE of a single-layer coil"
  21. 210  PRINT "  <b>   Turns in a single-layer coil for a specified inductance"
  22. 220  PRINT "  <c>   Turns from coil stock of known pitch (turns per inch or"
  23. 230  PRINT "        turns per cm.) for a specified inductance"
  24. 240  PRINT "  <d> INDUCTANCE of a straight copper strap"
  25. 250  PRINT "  <e>   Length of a straight copper strap for a specified inductance"
  26. 260  PRINT "  <f> INDUCTANCE of a transmission-line section"
  27. 270  PRINT "  <g>   Length of transmission line for a specified inductance"
  28. 280  PRINT "  <h> INDUCTANCE of a copper wire parallel to and grounded to a ";
  29. 290  PRINT "ground plane"
  30. 300  PRINT "  <i>   Length of a copper wire parallel to and above a ground ";
  31. 310  PRINT "plane for a"
  32. 320  PRINT "        specified inductance"
  33. 330  PRINT "  <j> INDUCTANCE of a straight copper wire in free space"
  34. 340  PRINT "  <k>   Length of a straight copper wire for a specified inductance"
  35. 350  PRINT "  <l> INDUCTANCE of a multi-layer rectangular coil"
  36. 360  PRINT "  <m> INDUCTANCE of a multi-layer circular coil"
  37. 370  PRINT "  <n>   Turns in a multi-layer bobbin-wound coil for a specified ";
  38. 380  PRINT "inductance"
  39. 390  PRINT "       - O R -"
  40. 400  PRINT "  <z> to EXIT"
  41. 410  '
  42. 420  Z$=INKEY$:IF Z$=""THEN 420
  43. 430  IF Z$="a"OR Z$="A"THEN CLS:GOSUB 660:GOTO 590
  44. 440  IF Z$="b"OR Z$="B"THEN CLS:GOSUB 2940:GOTO 590
  45. 450  IF Z$="c"OR Z$="C"THEN CLS:GOSUB 980:GOTO 590
  46. 460  IF Z$="d"OR Z$="D"THEN CLS:GOSUB 1260:GOTO 590
  47. 470  IF Z$="e"OR Z$="E"THEN CLS:GOSUB 1430:GOTO 590
  48. 480  IF Z$="f"OR Z$="F"THEN CLS:GOSUB 3210:GOTO 590
  49. 490  IF Z$="g"OR Z$="G"THEN CLS:GOSUB 3840:GOTO 590
  50. 500  IF Z$="h"OR Z$="H"THEN CLS:GOSUB 2320:GOTO 590
  51. 510  IF Z$="i"OR Z$="I"THEN CLS:GOSUB 2630:GOTO 590
  52. 520  IF Z$="j"OR Z$="J"THEN CLS:GOSUB 4350:GOTO 590
  53. 530  IF Z$="k"OR Z$="K"THEN CLS:GOSUB 5790:GOTO 590
  54. 540  IF Z$="l"OR Z$="L"THEN CLS:GOSUB 1630:GOTO 590
  55. 550  IF Z$="m"OR Z$="M"THEN CLS:GOSUB 2130:GOTO 590
  56. 560  IF Z$="n"OR Z$="N"THEN CLS:GOSUB 4480:GOTO 590
  57. 570  IF Z$="z"OR Z$="Z"THEN CLS:RUN EX$
  58. 580  GOTO 420
  59. 590  GOSUB 6710:GOTO 30   'screen dump
  60. 600  '
  61. 610  '.....format input line
  62. 620  LOCATE CSRLIN-1:PRINT "       ";
  63. 630  LOCATE CSRLIN,49:PRINT ".....";USING U$;Z;
  64. 640  RETURN
  65. 650  '
  66. 660  '.....single layer coil
  67. 670  REM  Equations from Hank Meyer, W6GGV, as published in "QST" Apr 1992, p76
  68. 680  PRINT " SINGLE-LAYER COIL INDUCTANCE"
  69. 690  PRINT UL$;
  70. 700  GOSUB 6050
  71. 710  INPUT " ENTER: Number of turns..............................";N
  72. 720  Z=N:GOSUB 610:PRINT ""
  73. 730  PRINT " ENTER: Coil Length.............................(";UM$;")";:INPUT B
  74. 740  Z=B:GOSUB 610:PRINT " ";UM$
  75. 750  PRINT " ENTER: Coil Inside Diameter....................(";UM$;")";:INPUT ID
  76. 760  Z=ID:GOSUB 610:PRINT " ";UM$
  77. 770  PRINT " ENTER: Total Lead Length.......................(";UM$;")";:INPUT LG
  78. 780  Z=LG:GOSUB 610:PRINT " ";UM$
  79. 790  GOSUB 6170
  80. 800  IF B<(2*N-1)*D THEN BEEP ELSE 890  'turn spacing less than wire diameter
  81. 810  PRINT
  82. 820  PRINT " NOT POSSIBLE! TURN SPACING IS LESS THAN WIRE DIAMETER!"
  83. 830  PRINT " INCREASE COIL LENGTH OR REDUCE WIRE SIZE !"
  84. 840  PRINT
  85. 850  PRINT " ......press any key to continue....."
  86. 860  IF INKEY$=""THEN 860
  87. 870  GOTO 30
  88. 880  '
  89. 890  DIA=ID+D
  90. 900  A=DIA/2
  91. 910  IF X%=2 THEN LG=LG/25.4 : A=A/25.4 : B=B/25.4 : D=D/25.4
  92. 920  GOSUB 6480
  93. 930  PRINT "        INDUCTANCE...................................";
  94. 940  IF L=>1 THEN PRINT USING U$;L;:PRINT " >H"
  95. 950  IF L<1 THEN PRINT USING U$;L*1000;:PRINT " nH"
  96. 960  RETURN
  97. 970  '
  98. 980  '.....coil turns using known winding pitch
  99. 990  PRINT " COIL TURNS REQUIRED USING KNOWN WINDING PITCH"
  100. 1000  PRINT UL$;
  101. 1010  GOSUB 6050
  102. 1020  INPUT " ENTER: Inductance..............................(>H)";LR
  103. 1030  Z=LR:GOSUB 610:PRINT " >H"
  104. 1040  IF X%=2 THEN T$="centimetre"ELSE T$="inch......"
  105. 1050  PRINT " ENTER: Turns-per-";T$;".........................";:INPUT T
  106. 1060  Z=T:GOSUB 610
  107. 1070  PRINT " ENTER: Coil Inside Diameter....................(";UM$;")";:INPUT ID
  108. 1080  Z=ID:GOSUB 610:PRINT " ";UM$
  109. 1090  PRINT " ENTER: Total Lead Length.......................(";UM$;")";:INPUT LG
  110. 1100  Z=LG:GOSUB 610:PRINT " ";UM$
  111. 1110  IF X%=2 THEN ID=ID/10:LG=LG/10   'mm. to cm.
  112. 1120  GOSUB 6170
  113. 1130  IF X%=2 THEN D=D/10
  114. 1140  DIA=ID+D
  115. 1150  A=DIA/2
  116. 1160  IF X%=2 THEN T=T*2.54 : A=A/2.54 : LG=LG/2.54 : D=D/2.54
  117. 1170  IF LG>0 THEN GOSUB 6610
  118. 1180  LI=LR-LW/1000
  119. 1190  P=1/T
  120. 1200  N=(5*LI+SQR(25*LI*LI+9*LI*T*T*A^3))/(T*A*A)   'Solve for initial value of N
  121. 1210  B=P*N : GOSUB 6510                            'Check inductance for N turns
  122. 1220  IF L>1.001*LR OR L<0.999*LR THEN N=N*(LR/L) : GOTO 1210    'Adjust N
  123. 1230  PRINT "        NUMBER OF TURNS..............................";USING U$;N
  124. 1240  RETURN
  125. 1250  '
  126. 1260  '.....straight strap inductance
  127. 1270  PRINT " STRAIGHT STRAP INDUCTANCE"
  128. 1280  PRINT UL$;
  129. 1290  GOSUB 6050
  130. 1300  PRINT " ENTER: Strap Length............................(";UM$;")";:INPUT LG
  131. 1310  Z=LG:GOSUB 610:PRINT " ";UM$
  132. 1320  PRINT " ENTER: Strap Width.............................(";UM$;")";:INPUT B
  133. 1330  Z=B:GOSUB 610:PRINT " ";UM$
  134. 1340  PRINT " ENTER: Strap Thickness.........................(";UM$;")";:INPUT C
  135. 1350  Z=C:GOSUB 610:PRINT " ";UM$
  136. 1360  IF X%=2 THEN LG=LG/25.4  : B=B/25.4 : C=C/25.4
  137. 1370  L=0.0051*LG*(LOG(2*LG/(B+C))+(0.224*(B+C)/LG)+0.5)*1000
  138. 1380  L1=L/10^3
  139. 1390  PRINT "        INDUCTANCE...................................";USING U$;L1;
  140. 1400  PRINT " >H"
  141. 1410  RETURN
  142. 1420  '
  143. 1430  '.....straight strap length
  144. 1440  PRINT " STRAIGHT STRAP LENGTH"
  145. 1450  PRINT UL$;
  146. 1460  GOSUB 6050
  147. 1470  INPUT " ENTER: Inductance..............................(>H)";L1:L=L1*10^3
  148. 1480  Z=L1:GOSUB 610:PRINT " >H"
  149. 1490  PRINT " ENTER: Strap Width.............................(";UM$;")";:INPUT B
  150. 1500  Z=B:GOSUB 610:PRINT " ";UM$
  151. 1510  PRINT " ENTER: Strap Thickness.........................(";UM$;")";:INPUT C
  152. 1520  Z=C:GOSUB 610:PRINT " ";UM$
  153. 1530  IF X%=2 THEN B=B/25.4 : C=C/25.4
  154. 1540  X=1
  155. 1550  LG=(0.196*L)/(LOG((2*X)/(B+C))+(0.224*(B+C)/X)+0.5)
  156. 1560  IF LG<0.999*X OR LG>1.001*X THEN X=LG ELSE 1580
  157. 1570  GOTO 1550
  158. 1580  IF X%=2 THEN LG=LG*25.4
  159. 1590  PRINT "        STRAP LENGTH.................................";USING U$;LG;
  160. 1600  PRINT " ";UM$
  161. 1610  RETURN
  162. 1620  '
  163. 1630  '.....multi-length rectangulare coil
  164. 1640  PRINT " MULTI-LAYER RECTANGULAR COIL INDUCTANCE"
  165. 1650  PRINT UL$;
  166. 1660  PRINT 
  167. 1670  J=16
  168. 1680  PRINT TAB(J);"    CALLDEFSNGSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUND LG SOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDDEFDBLCALL     SOUNDSOUNDDEFDBLCALL  H  CALLDEFSNGSOUNDSOUND
  169. 1690  PRINT TAB(J);" SOUNDSOUNDDEFDBLCALL   CALLDEFSNGSOUNDSOUND T             CALL        CALL     CALL
  170. 1700  PRINT TAB(J);"VARPTRSOUNDDEFDBL KEYTHENTHENTHENINSTRTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENCLOSE        KEYTHENTHENTHENTHENTHENCLOSE
  171. 1710  PRINT TAB(J);"CALL   OPEN VARPTRSOUNDBEEPSOUNDSOUND>         SOUNDSOUNDSOUNDSOUNDCOLOR OPEN        OPENWENDWENDWENDWENDWENDOPEN
  172. 1720  PRINT TAB(J);"CALL   OPEN CALL KEYTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENCLOSE CALL OPEN        TOTHENTHENTHENTHENTHENRANDOMIZE
  173. 1730  PRINT TAB(J);"CALL   OPEN CALL OPEN              OPEN CALL OPEN        OPEN     OPEN
  174. 1740  PRINT TAB(J);"W   OPEN CALL OPEN              OPEN CALL OPEN        OPEN     OPEN
  175. 1750  PRINT TAB(J);"CALL   OPEN CALL OPEN              OPEN CALL OPEN        OPEN     OPEN
  176. 1760  PRINT TAB(J);"CALL   OPEN CALL SCREENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENLOAD CALL OPEN        TOTHENTHENTHENTHENTHENRANDOMIZE
  177. 1770  PRINT TAB(J);"CALL   OPEN CLSSOUNDSOUNDSOUNDSOUND windings SOUNDSOUNDSOUNDSOUND' OPEN        OPENWENDWENDWENDWENDWENDOPEN
  178. 1780  PRINT TAB(J);"CLSSOUNDDEFDBL SCREENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENLOAD        SCREENTHENTHENTHENTHENTHENLOAD
  179. 1790  PRINT
  180. 1800  PRINT UL$;
  181. 1810  GOSUB 6050
  182. 1820  PRINT " ENTER: Overall Length (LG).....................(";UM$;")";:INPUT LG
  183. 1830  Z=LG:GOSUB 610:PRINT " ";UM$
  184. 1840  PRINT " ENTER: Overall Width (W).......................(";UM$;")";:INPUT W
  185. 1850  Z=W:GOSUB 610:PRINT " ";UM$
  186. 1860  PRINT " ENTER: Overall Height (H)......................(";UM$;")";:INPUT H
  187. 1870  Z=H:GOSUB 610:PRINT " ";UM$
  188. 1880  PRINT " ENTER: Coil Thickness (T)......................(";UM$;")";:INPUT T
  189. 1890  Z=T:GOSUB 610:PRINT " ";UM$
  190. 1900  PRINT " Press number in ( ) to ENTER:"
  191. 1910  PRINT " (1) Total number of turns, or";
  192. 1920  PRINT " (2) Number of turns per layer and no. of layers"
  193. 1930  Y$=INKEY$
  194. 1940  IF Y$="1"OR Y$="2"THEN Y%=VAL(Y$)ELSE 1930
  195. 1950  CSR=CSRLIN-2:VIEW PRINT CSR TO 24:CLS:VIEW PRINT:LOCATE CSR
  196. 1960  IF Y%=1 THEN 2030
  197. 1970  INPUT " ENTER: Number of turns per layer....................";N
  198. 1980  Z=N:GOSUB 610:PRINT ""
  199. 1990  INPUT " ENTER: Number of layers in coil.....................";M
  200. 2000  Z=M:GOSUB 610:PRINT ""
  201. 2010  N=N*M
  202. 2020  GOTO 2070
  203. 2030  INPUT " ENTER: Total number of turns........................";N
  204. 2040  Z=N:GOSUB 610:PRINT ""
  205. 2050  IF X%=2 THEN LG=LG/25.4 : W=W/25.4 : H=H/25.4 : T=T/25.4
  206. 2060  REM  Formula from EDN; Aug 4, 1982; p164 (RSS Document #M905)
  207. 2070  C=LG+W-2*T
  208. 2080  L=0.07*C*C*N*N/(1.908*C+9*H+10*T)
  209. 2090  PRINT "        INDUCTANCE...................................";USING U$;L;
  210. 2100  PRINT " >H (EQV10%)"
  211. 2110  RETURN
  212. 2120  '
  213. 2130  '.....multi-layer circular coil
  214. 2140  PRINT " MULTI-LAYER CIRCULAR COIL INDUCTANCE"
  215. 2150  PRINT UL$;
  216. 2160  GOSUB 6050
  217. 2170  PRINT " ENTER: Inside Diameter of Coil.................(";UM$;")";:INPUT ID
  218. 2180  Z=ID:GOSUB 610:PRINT " ";UM$
  219. 2190  PRINT " ENTER: Outside Diameter of Coil................(";UM$;")";:INPUT OD
  220. 2200  Z=OD:GOSUB 610:PRINT " ";UM$
  221. 2210  PRINT " ENTER: Length of Coil..........................(";UM$;")";:INPUT W
  222. 2220  Z=W:GOSUB 610:PRINT " ";UM$
  223. 2230  PRINT " ENTER: Number of Turns..............................";:INPUT N
  224. 2240  Z=N:GOSUB 610:PRINT " ";UM$
  225. 2250  IF X%=2 THEN W=W/25.4 : ID=ID/25.4 : OD=OD/25.4
  226. 2260  R=(OD+ID)/4
  227. 2270  L=0.8*R*R*N*N/(6*R+9*W+5*(OD-ID))
  228. 2280  PRINT "        INDUCTANCE...................................";USING U$;L;
  229. 2290  PRINT " >H"
  230. 2300  RETURN
  231. 2310  '
  232. 2320  '.....wire parallel to & grounded to ground plane
  233. 2330  PRINT " WIRE PARALLEL TO and GROUNDED TO A GROUND PLANE
  234. 2340  PRINT UL$;
  235. 2350  PRINT 
  236. 2360  T=22
  237. 2370  PRINT TAB(T);"     <SOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUND LG SOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUND>"
  238. 2380  PRINT TAB(T);"wire THENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENCLOSE <SOUNDSOUNDCOLOR
  239. 2390  PRINT TAB(T);"                            OPEN    CALL
  240. 2400  PRINT TAB(T);"                            OPEN    H
  241. 2410  PRINT TAB(T);"                            OPEN    CALL
  242. 2420  PRINT TAB(T);"     SOUNDSOUNDSOUNDSOUND- ground plane SOUNDSOUNDSOUNDSOUNDUSRSOUND <SOUND'
  243. 2430  PRINT TAB(T);"     \\\\\\\\\\\\\\\\\\\\\\\\\
  244. 2440  PRINT UL$;
  245. 2450  GOSUB 6050 : GOSUB 6170
  246. 2460  PRINT " ENTER: Length (LG).............................(";UM$;")";:INPUT LG
  247. 2470  Z=LG:GOSUB 610:PRINT " ";UM$
  248. 2480  PRINT " ENTER: Height (H) above ground plane...........(";UM$;")";:INPUT W
  249. 2490  Z=W:GOSUB 610:PRINT " ";UM$
  250. 2500  TL=LG+W
  251. 2510  PRINT "        Total wire length (LG+H).....................";USING U$;TL;
  252. 2520  PRINT " ";UM$
  253. 2530  IF X%=2 THEN R=D/2 ELSE LG=25.4*LG : R=12.7*D : W=25.4*W
  254. 2540  REM Equation from 1986 ARRL Handbook
  255. 2550  K1=SQR(LG*LG+R*R)
  256. 2560  K2=SQR(LG*LG+4*W*W)
  257. 2570  L=0.2*LG*LOG((2*W/R)*((LG+K1)/(LG+K2)))+0.2*(K2-K1+(LG/4)-(2*W)+R)
  258. 2580  L1=L/10^3
  259. 2590  PRINT "        INDUCTANCE for Total Length (LG+H)...........";USING U$;L1;
  260. 2600  PRINT " >H"
  261. 2610  RETURN
  262. 2620  '
  263. 2630  '.....wire length parallel to and above ground plane
  264. 2640  PRINT " WIRE LENGTH PARALLEL TO AND ABOVE GROUND PLANE
  265. 2650  PRINT UL$;
  266. 2660  PRINT 
  267. 2670  T=22
  268. 2680  PRINT TAB(T);"     <SOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUND LG SOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUND>"
  269. 2690  PRINT TAB(T);"wire THENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHEN <SOUNDSOUNDCOLOR
  270. 2700  PRINT TAB(T);"                                 CALL
  271. 2710  PRINT TAB(T);"                                 H
  272. 2720  PRINT TAB(T);"                                 CALL
  273. 2730  PRINT TAB(T);"     SOUNDSOUNDSOUNDSOUND- ground plane SOUNDSOUNDSOUNDSOUNDSOUND <SOUNDSOUND'
  274. 2740  PRINT TAB(T);"     \\\\\\\\\\\\\\\\\\\\\\\\\
  275. 2750  PRINT UL$;
  276. 2760  GOSUB 6050 : GOSUB 6170
  277. 2770  INPUT " ENTER: Inductance (>H)..............................";L:
  278. 2780  Z=L:GOSUB 610:PRINT " >H"
  279. 2790  L=L*10^3    'inductance in nH
  280. 2800  PRINT " ENTER: Height (H) above ground plane...........(";UM$;")";:INPUT W
  281. 2810  Z=W:GOSUB 610:PRINT " ";UM$
  282. 2820  IF X%=2 THEN R=D/2 ELSE R=12.7*D : W=25.4*W
  283. 2830  X=25
  284. 2840  K1=SQR(X*X+R*R)
  285. 2850  K2=SQR(X*X+4*W*W)
  286. 2860  LG=L/(0.2*LOG((2*W/R)*((X+K1)/(X+K2)))+(0.2*(K2-K1+(X/4)-(2*W)+R))/X)
  287. 2870  IF LG>0.999*X AND LG<1.001*X THEN 2890 ELSE X=LG
  288. 2880  GOTO 2840
  289. 2890  IF X%=1 THEN LG=LG/25.4
  290. 2900  PRINT "        WIRE LENGTH (LG).............................";USING U$;LG;
  291. 2910  PRINT " ";UM$
  292. 2920  GOTO 5980
  293. 2930  '
  294. 2940  '.....single-layer coil turns
  295. 2950  PRINT " SINGLE-LAYER COIL TURNS
  296. 2960  PRINT UL$;
  297. 2970  GOSUB 6050
  298. 2980  INPUT " ENTER: Inductance..............................(>H)";LR
  299. 2990  Z=LR:GOSUB 610:PRINT " >H"
  300. 3000  PRINT " ENTER: Coil Length.............................(";UM$;")";:INPUT B
  301. 3010  Z=B:GOSUB 610:PRINT " ";UM$
  302. 3020  PRINT " ENTER: Coil Inside Diameter....................(";UM$;")";:INPUT ID
  303. 3030  Z=ID:GOSUB 610:PRINT " ";UM$
  304. 3040  PRINT " ENTER: Total Lead Length.......................(";UM$;")";:INPUT LG
  305. 3050  Z=LG:GOSUB 610:PRINT " ";UM$
  306. 3060  GOSUB 6170
  307. 3070  DIA=ID+D
  308. 3080  A=DIA/2
  309. 3090  IF X%=2 THEN LG=LG/25.4 : A=A/25.4 : B=B/25.4 : D=D/25.4
  310. 3100  IF LG>0 THEN GOSUB 6610
  311. 3110  LI=LR-LW/1000
  312. 3120  N=SQR(LI*(9*A+10*B)/(A*A))         'Solve for initial value of N
  313. 3130  GOSUB 6480                         'Check inductance for N turns
  314. 3140  IF L>1.001*LR OR L<0.999*LR THEN N=N*SQR(LR/L) : GOTO 3130    'Adjust N
  315. 3150  IF B>=N*D THEN 3180
  316. 3160  PRINT " TOO MANY TURNS - REDUCE WIRE SIZE OR INCREASE COIL LENGTH"
  317. 3170  GOTO 3190
  318. 3180  PRINT "        NUMBER OF TURNS..............................";USING U$;N
  319. 3190  RETURN
  320. 3200  '
  321. 3210  '.....transmission line inductance
  322. 3220  PRINT " TRANSMISSION LINE INDUCTANCE"
  323. 3230  PRINT UL$;
  324. 3240  PRINT " Press number in < > to choose Line Length unit of measurement:"
  325. 3250  PRINT UL$;
  326. 3260  PRINT "   <1> Inches"
  327. 3270  PRINT "   <2> Centimetres"
  328. 3280  PRINT "   <3> Electrical Degrees"
  329. 3290  PRINT "   <4> Wavelengths"
  330. 3300  Z$=INKEY$:IF VAL(Z$)<1 OR VAL(Z$)>4 THEN 3300
  331. 3310  Y%=VAL(Z$)
  332. 3320  IF Y%=1 THEN L$="( inches )....."
  333. 3330  IF Y%=2 THEN L$="( centimetres )"
  334. 3340  IF Y%=3 THEN L$="( <UNK! {00F8}> ).........."
  335. 3350  IF Y%=4 THEN L$="( wavelengths )"
  336. 3360  VIEW PRINT 3 TO 24:CLS:VIEW PRINT:LOCATE 3
  337. 3370  PRINT " ENTER: Line Length ";L$;".............";:INPUT LG
  338. 3380  Z=LG:GOSUB 610:PRINT ""
  339. 3390  PRINT UL$;
  340. 3400  PRINT " Press number in < > to describe line:"
  341. 3410  PRINT UL$;
  342. 3420  PRINT "   <1> OPEN line"
  343. 3430  PRINT "   <2> SHORTED line"
  344. 3440  Z$=INKEY$
  345. 3450  IF Z$="1"THEN T$="O":LT$="OPEN":GOTO 3480
  346. 3460  IF Z$="2"THEN T$="S":LT$="SHORTED":GOTO 3480
  347. 3470  GOTO 3440
  348. 3480  VIEW PRINT 4 TO 24:CLS:VIEW PRINT:LOCATE 4
  349. 3490  PRINT "        Line Type.................................... ";LT$
  350. 3500  INPUT " ENTER: Characteristic Impedance (ohms)..........";ZO
  351. 3510  Z=ZO:GOSUB 610:PRINT ""
  352. 3520  IF Y%>2 THEN 3550
  353. 3530  INPUT " ENTER: Velocity Factor (decimal)................";V
  354. 3540  Z=V:GOSUB 610:PRINT ""
  355. 3550  INPUT " ENTER: Frequency (MHz)..........................";F
  356. 3560  Z=F:GOSUB 610:PRINT ""
  357. 3570  IF Y%=1 THEN LG=LG*F/(11802.9*V)
  358. 3580  IF Y%=2 THEN LG=LG*F/(29979.3*V)
  359. 3590  IF Y%=3 THEN LG=LG/360
  360. 3600  WHILE LG>0.5
  361. 3610    LG=LG-0.5
  362. 3620  WEND
  363. 3630  PRINT 
  364. 3640  IF LG<=0.249 OR LG>=0.251 THEN 3660
  365. 3650  PRINT " LINE IS A QUARTER-WAVE OPEN OR SHORT CIRCUIT":RETURN
  366. 3660  IF LG>=0.495 AND LG=<0.5 THEN PRINT " LINE IS A HALF-WAVE TRANSFORMER":RETURN
  367. 3670  LG=LG*2*PI
  368. 3680  IF T$="S" OR T$="s" THEN XL=ZO*TAN(LG) ELSE XL=-ZO*TAN(LG)
  369. 3690  IF XL<0 THEN PRINT " LINE IS CAPACITIVE" ELSE 3770
  370. 3700  C=ABS(1/(2*PI*F*XL))
  371. 3710  C1=C*10^6
  372. 3720  PRINT "        Capacitance..................................";USING U$;C1;
  373. 3730  PRINT " pF"
  374. 3740  PRINT "        Reactance....................................";USING U$;XL;
  375. 3750  PRINT " -"
  376. 3760  RETURN
  377. 3770  L=XL/(2*PI*F)
  378. 3780  PRINT "        Inductance...................................";USING U$;L;
  379. 3790  PRINT " >H"
  380. 3800  PRINT "        Reactance....................................";USING U$;XL;
  381. 3810  PRINT " -"
  382. 3820  RETURN
  383. 3830  '
  384. 3840  '.....transmission line length
  385. 3850  PRINT " TRANSMISSION LINE LENGTH"
  386. 3860  GOSUB 6050
  387. 3870  PRINT UL$;
  388. 3880  INPUT " ENTER: Inductance................................(>H)";L1:L=L1*10^3
  389. 3890  Z=L1:GOSUB 610:PRINT " >H"
  390. 3900  INPUT " ENTER: Characteristic Impedance................(ohms)";ZO
  391. 3910  Z=ZO:GOSUB 610:PRINT " -"
  392. 3920  INPUT " ENTER: Velocity Factor (decimal).....................";V
  393. 3930  Z=V:GOSUB 610:PRINT ""
  394. 3940  INPUT " ENTER: Frequency................................(MHz)";F
  395. 3950  Z=F:GOSUB 610:PRINT " MHz"
  396. 3960  PRINT UL$;
  397. 3970  PRINT " Press number in < > to describe line:"
  398. 3980  PRINT UL$;
  399. 3990  PRINT "   <1> OPEN line"
  400. 4000  PRINT "   <2> SHORTED line"
  401. 4010  Z$=INKEY$
  402. 4020  IF Z$="1"THEN T$="O":LT$="OPEN":GOTO 4050
  403. 4030  IF Z$="2"THEN T$="S":LT$="SHORTED":GOTO 4050
  404. 4040  GOTO 4010
  405. 4050  VIEW PRINT 7 TO 24:CLS:VIEW PRINT:LOCATE 7
  406. 4060  PRINT "        Line Type.................................... ";LT$
  407. 4070  XL=2*PI*F*L*0.000999999
  408. 4080  LG=ATN(XL/ZO)
  409. 4090  IF T$="O" OR T$="o" THEN LG=PI-LG
  410. 4100  LG=LG/(2*PI)        'wavelength
  411. 4110  LGD=LG*360          'degrees
  412. 4120  LGI=LG*V*11802.9/F  'inches
  413. 4130  PRINT "  LENGTH TO FIRST POINT HAVING";USING U$;L1;:PRINT " >H INDUCTANCE:"
  414. 4140  PRINT "        Wavelengths..................................";USING U$;LG
  415. 4150  PRINT "        Electrical Degrees...........................";USING U$;LGD
  416. 4160  IF X%=2 THEN 4190
  417. 4170  PRINT "        Inches.......................................";USING U$;LGI
  418. 4180  GOTO 4200
  419. 4190  LGI=LGI*2.54
  420. 4200  IF X%=1 THEN 4220
  421. 4210  PRINT "        Centimetres..................................";USING U$;LGI
  422. 4220  WLFS=29979.3/F       'wavelength in free space in centimetres
  423. 4230  HWC=V*WLFS/2         'RENUM wavelength in cable with velociy factor V
  424. 4240  IF X%=1 THEN K=2.54:K$="in."ELSE K=1:K$="cm."
  425. 4250  PRINT "  LENGTHS TO OTHER POINTS ALSO HAVING";USING U$;L1;
  426. 4260  PRINT " >H INDUCTANCE:"
  427. 4270  PRINT "        (measurements from end of cable):"
  428. 4280  FOR Z=1 TO 9
  429. 4290  PRINT TAB(26);USING V$;LGI+Z*HWC/K;:PRINT " ";K$
  430. 4300  NEXT Z
  431. 4310  PRINT TAB(30);"continuing onward at";USING V$;HWC/K;
  432. 4320  PRINT " ";K$;" intervals.";
  433. 4330  RETURN
  434. 4340  '
  435. 4350  '.....straight wire inductance
  436. 4360  PRINT " STRAIGHT WIRE INDUCTANCE"
  437. 4370  PRINT UL$;
  438. 4380  GOSUB 6050 : GOSUB 6170
  439. 4390  PRINT " ENTER: Wire Length.............................(";UM$;")";:INPUT LG
  440. 4400  Z=LG:GOSUB 610:PRINT " ";UM$
  441. 4410  IF X%=2 THEN LG=LG/25.4 : D=D/25.4
  442. 4420  GOSUB 6610
  443. 4430  L1=LW/10^3    'inductance in >H
  444. 4440  PRINT "        INDUCTANCE...................................";USING U$;L1;
  445. 4450  PRINT " >H"
  446. 4460  RETURN
  447. 4470  '
  448. 4480  '.....multi-layer bobbin-wound coil
  449. 4490  REM  This routine adapted from program written by Thomas N. Lockyer and
  450. 4500  REM  published in March 17, 1983 issue of "EDN"
  451. 4510  PRINT " MULTI-LAYER BOBBIN-WOUND COIL DESIGN"
  452. 4520  PRINT UL$;
  453. 4530  PRINT " DIMENSIONS MUST BE ENTERED IN INCHES"
  454. 4540  PRINT UL$;
  455. 4550  PRINT " Press number in ( ) to indicate shape of bobbin:"
  456. 4560  PRINT UL$;
  457. 4570  PRINT "   (1) Round"
  458. 4580  PRINT "   (2) Rectangular"
  459. 4590  J$=INKEY$:IF J$="1"OR J$="2"THEN J%=VAL(J$):GOTO 4600 ELSE 4590
  460. 4600  VIEW PRINT 3 TO 24:CLS:VIEW PRINT:LOCATE 3
  461. 4610  '
  462. 4620  ' .....diagram
  463. 4630  IF J%=1 THEN V$="Circular, D diameter"ELSE V$="Rectangular, W x H"
  464. 4640  T=16
  465. 4650  PRINT TAB(T);"      SOUNDSOUNDDEFDBLCALL  LG  CALLDEFSNGSOUNDSOUND
  466. 4660  PRINT
  467. 4670  PRINT TAB(T);"          WENDWENDWENDWENDWENDWEND
  468. 4680  PRINT TAB(T);"         TOTHENTHENTHENTHENTHENTHENRANDOMIZE
  469. 4690  PRINT TAB(T);"Bobbin SOUNDSOUNDUSINGSOUNDSOUNDDEFDBL   OPEN<SOUND- End View is ";V$
  470. 4700  PRINT TAB(T);"         TOTHENTHENTHENTHENTHENTHENRANDOMIZE
  471. 4710  PRINT TAB(T);"          WENDWENDWENDWENDWENDWEND<SOUNDSOUNDSOUND windings build-up
  472. 4720  PRINT
  473. 4730  PRINT UL$;
  474. 4740  '
  475. 4750  INPUT " ENTER: Desired Inductance.......................(>H)";H1
  476. 4760  Z=H1:GOSUB 610:PRINT " >H"
  477. 4770  '
  478. 4780  IF J%=2 THEN 4810
  479. 4790  INPUT " ENTER: Length (LG) of circular coil............(in.)";L
  480. 4800  GOTO 4820
  481. 4810  INPUT " ENTER: Length (LG) of Rectangular Coil.........(in.)";L
  482. 4820  Z=L:GOSUB 610:PRINT " in."
  483. 4830  '
  484. 4840  COLOR 0,7
  485. 4850  PRINT " NOTE: The estimated thickness of coil build-up must not be less ";
  486. 4860  PRINT "than 0.003";CHR$(34);" "
  487. 4870  COLOR 7,0
  488. 4880  INPUT " ENTER: Estimated thickness of coil build-up....(in.)";B
  489. 4890  CSR=CSRLIN-2:VIEW PRINT CSR TO 24:CLS:VIEW PRINT:LOCATE CSR
  490. 4900  IF B<0.003 THEN BEEP:GOTO 4840
  491. 4910  PRINT "        Estimated thickness of coil build-up.........";USING U$;B;
  492. 4920  PRINT " in."
  493. 4930  '
  494. 4940  PRINT " MUST INDUCTOR CARRY A SPECIFIED CURRENT? (y/n) "
  495. 4950  Z$=INKEY$
  496. 4960  IF Z$="N" OR Z$="n" THEN GOSUB 4990:GOTO 5110
  497. 4970  IF Z$="Y" OR Z$="y" THEN GOSUB 4990:GOTO 5020
  498. 4980  GOTO 4950
  499. 4990  LOCATE CSRLIN-1:PRINT STRING$(80,32);:LOCATE CSRLIN-1
  500. 5000  RETURN
  501. 5010  '
  502. 5020  COLOR 0,7
  503. 5030  PRINT " NOTE: Current must be between .019 A. and 21.0 A. "
  504. 5040  COLOR 7,0
  505. 5050  INPUT " ENTER: Required current.......................(amps)";A2
  506. 5060  CSR=CSRLIN-2:VIEW PRINT CSR TO 24:CLS:VIEW PRINT:LOCATE CSR
  507. 5070  IF A2<0.019 OR A2>21 THEN BEEP:GOTO 5020
  508. 5080  PRINT "        Required current (amps)......................";USING U$;A2;
  509. 5090  PRINT " amps"
  510. 5100  '
  511. 5110  IF J%=1 THEN 5200
  512. 5120  INPUT " ENTER: Width (W) of Rectangular Bobbin.........(in.)";Y
  513. 5130  Z=Y:GOSUB 610:PRINT " in."
  514. 5140  INPUT " ENTER: Height (H) of Rectangular Bobbin........(in.)";D
  515. 5150  Z=D:GOSUB 610:PRINT " in."
  516. 5160  C=D+Y+2*B
  517. 5170  Z=1.908*C
  518. 5180  GOTO 5230
  519. 5190  '
  520. 5200  INPUT " ENTER: Diameter (D) of Circular Bobbin.........(in.)";D
  521. 5210  Z=D:GOSUB 610:PRINT " in."
  522. 5220  C=(D/2)+(B/2)
  523. 5230  K=9*L
  524. 5240  M=10*B
  525. 5250  IF J%=1 THEN 5300
  526. 5260  T=H1*(Z+K+M)
  527. 5270  P=T/0.07
  528. 5280  N=SQR(P)/C
  529. 5290  GOTO 5340
  530. 5300  V=6*C
  531. 5310  T=H1*(V+K+M)
  532. 5320  P=T/0.8
  533. 5330  N=SQR(P)/C
  534. 5340  A=SQR((B*L)/N)*800
  535. 5350  C1=A*A
  536. 5360  A1=C1/500
  537. 5370  REM  Calc wire size (10 to 40 AWG) and circular mils
  538. 5380  E=10
  539. 5390  FOR E=10 TO 40
  540. 5400    D1=10380
  541. 5410    F=E-9
  542. 5420    FOR G=1 TO F
  543. 5430      D1=D1-0.207*D1
  544. 5440    NEXT G
  545. 5450    IF D1<C1 THEN 5470
  546. 5460  NEXT E
  547. 5470  IF Z$="N" OR Z$="n" THEN 5610 ELSE PFLAG%=PFLAG%+1
  548. 5480  IF PFLAG%=1 THEN PRINT " .......calculating - please wait!......."
  549. 5490  REM  Determines wire size for specified current
  550. 5500  IF A1/A2<1.01 THEN 5550
  551. 5510  IF A1>A2 THEN 5530
  552. 5520  GOTO 5550
  553. 5530  B=B-0.05*B
  554. 5540  IF J%=1 THEN 5220 ELSE 5160
  555. 5550  IF A2/A1<1.01 THEN 5610
  556. 5560  IF A1<A2 THEN 5580
  557. 5570  GOTO 5610
  558. 5580  B=B+0.05*B
  559. 5590  IF J%=1 THEN 5220 ELSE 5160
  560. 5600  '
  561. 5610  S=A*N/(L*800)
  562. 5620  IF A1>21 THEN PRINT "Estimated coil build-up is too large - redesign!" : RETURN
  563. 5630  IF A1<0.019 THEN PRINT "Estimated coil build-up is too small - redesign!" : RETURN
  564. 5640  IF S<0.9 THEN PRINT "Less than one coil layer - respecify coil length!" : RETURN
  565. 5650  LOCATE CSRLIN-1:PRINT STRING$(80,32);:LOCATE CSRLIN-1
  566. 5660  PRINT "        Number of Turns..............................";USING U$;N
  567. 5670  PRINT "        Required Coil Build-up.......................";USING U$;B;
  568. 5680  PRINT " in."
  569. 5690  PRINT "        Circular mils per turn available.............";USING U$;C1
  570. 5700  PRINT "        Max.Current @ 500 cm per amp.................";USING U$;A1;
  571. 5710  PRINT " amps"
  572. 5720  U$="####"
  573. 5730  PRINT "        Wire Size...................................#";USING U$;E;
  574. 5740  PRINT " AWG"
  575. 5750  IF S-FIX(S)>0 THEN S=FIX(S)+1
  576. 5760  PRINT "        Number of Layers.............................";USING U$;S;
  577. 5770  RETURN
  578. 5780  '
  579. 5790  '.....straight wire length
  580. 5800  PRINT " STRAIGHT WIRE LENGTH"
  581. 5810  PRINT UL$;
  582. 5820  GOSUB 6050 : GOSUB 6170
  583. 5830  INPUT " ENTER: Inductance (>H)..............................";L:
  584. 5840  Z=L:GOSUB 610:PRINT " >H"
  585. 5850  L=L*10^3   'inductance in nH
  586. 5860  IF X%=2 THEN D=D/25.4
  587. 5870  X=1
  588. 5880  LG=0.196*L/(LOG(4*X/D)-1)
  589. 5890  IF LG>0.999*X AND LG<1.001*X THEN 5910 ELSE X=LG
  590. 5900  GOTO 5880
  591. 5910  IF X%=2 THEN LG=LG*25.4
  592. 5920  PRINT "        WIRE LENGTH..................................";USING U$;LG;
  593. 5930  PRINT " ";UM$
  594. 5940  RETURN
  595. 5950  '
  596. 5960  '.....error message
  597. 5970  PRINT : PRINT " NO SOLUTION FOR THE DATA ENTERED"
  598. 5980  '
  599. 5990  '.....end
  600. 6000  GOSUB 6710:CLS:GOTO 30
  601. 6010  END
  602. 6020  '
  603. 6030  '************ sub routines ************
  604. 6040  '
  605. 6050  '.....metric/imperial
  606. 6060  PRINT " Press number in < > to choose standard system of measurement:"
  607. 6070  PRINT UL$;
  608. 6080  PRINT "   < 1 > Metric"
  609. 6090  PRINT "   < 2 > U.S.A./Imperial"
  610. 6100  X$=INKEY$
  611. 6110  IF X$="1"THEN X%=2:UM$="mm.":GOTO 6140
  612. 6120  IF X$="2"THEN X%=1:UM$="in.":GOTO 6140
  613. 6130  GOTO 6100
  614. 6140  CSR=CSRLIN-5:VIEW PRINT CSR TO 24:CLS:VIEW PRINT:LOCATE CSR
  615. 6150  RETURN
  616. 6160  '
  617. 6170  '.....wire size
  618. 6180  IF X%=2 THEN 6290
  619. 6190  PRINT " Do you want to enter wire diameter by its AWG size?   (y/n)"
  620. 6200  Z$=INKEY$
  621. 6210  IF Z$="y"OR Z$="Y" THEN 6240
  622. 6220  IF Z$="n"OR Z$="N"THEN 6280
  623. 6230  GOTO 6200
  624. 6240  LOCATE CSRLIN-1:PRINT STRING$(80,32);:LOCATE CSRLIN-1
  625. 6250  INPUT " ENTER: Wire Size (even no. from 10 to 40)...........";Z%
  626. 6260  GOTO 6330
  627. 6270  '
  628. 6280  LOCATE CSRLIN-1:PRINT STRING$(80,32);:LOCATE CSRLIN-1
  629. 6290  PRINT " ENTER: Wire Diameter...........................(";UM$;")";:INPUT D
  630. 6300  Z=D:GOSUB 610:PRINT " ";UM$
  631. 6310  RETURN
  632. 6320  '
  633. 6330  IF Z%>=10 AND Z%<=40 AND Z%/2=INT(Z%/2) THEN 6360
  634. 6340  BEEP:GOTO 6240
  635. 6350  '
  636. 6360  FOR J=10 TO Z% STEP 2
  637. 6370    READ D
  638. 6380  NEXT J
  639. 6390  CSR=CSRLIN-1:VIEW PRINT CSR TO 24:CLS:VIEW PRINT:LOCATE CSR
  640. 6400  PRINT "        Wire Diameter................................";USING U$;D;
  641. 6410  PRINT " ";UM$;" (#";Z%;"AWG )"
  642. 6420  GOTO 6300
  643. 6430  '
  644. 6440  REM **********************************************************************
  645. 6450  INPUT"DO YOU WANT TO ENTER DIMENSIONS IN (1) INCHES OR (2) CENTIMETERS ";X%
  646. 6460  IF X%<1 OR X%>2 THEN PRINT "Please enter 1 or 2" : GOTO 6450
  647. 6470  RETURN
  648. 6480  REM *********************************************************************
  649. 6490  REM  W6GGV's equations
  650. 6500  P=B/N                            'NOTE ==> 1/pitch
  651. 6510  G=(5/4)-LOG(2*P/D)
  652. 6520  H=0.336*(1-(2.5/N)+(3.8/N^2)-(2.5/N^3)-(0.83/N^4))+0.004
  653. 6530  R=B/DIA : C=LOG(4/R)
  654. 6540  IF 2*A/B >= 1 THEN K=(2*R/PI)*((C-1/2)+((R^2)/8)*(C+1/8)-((R^4)/64)*(C-2/3)+((5*R^6)/1024)*(C-109/120))
  655. 6550  IF 2*A/B < 1 THEN K=1-(8*A)/(3*PI*B)+A^2/(2*B^2)-A^4/(4*B^4)+(5*A^6)/(16*B^6)-(35*A^8)/(64*B^8)+(147*A^10)/(128*B^10)
  656. 6560  L=(5.08*PI^2*A*N^2*K)/(B/(2*A))-(10.2*PI*N*(G+H)*A)
  657. 6570  IF LG>0 THEN GOSUB 6610
  658. 6580  L=(L+LW)/1000
  659. 6590  RETURN
  660. 6600  '
  661. 6610  '.....inductance of straight wire
  662. 6620  REM  Inductance of straight wire in nH
  663. 6630  LW=5.08*LG*(LOG((4*LG)/D)-0.75)
  664. 6640  RETURN
  665. 6650  '
  666. 6660  '.....data
  667. 6670  REM  Data are dia in inches of even-number wire sizes from #10 to #40 AWG
  668. 6680  DATA .1019,.08081,.06408,.05082,.0403,.03196,.02535,.0201,.01594,.01264
  669. 6690  DATA .01003,.00795,.006305,.005,.003965,.003145
  670. 6700  '
  671. 6710  'HARDCOPY
  672. 6720  GOSUB 6830:LOCATE 25,2:COLOR 14,6
  673. 6730  PRINT " Press 1 to print screen, 2 to print screen & ";
  674. 6740  PRINT "advance paper, or 3 to continue.";:COLOR 7,0
  675. 6750  Z$=INKEY$:IF Z$="3"THEN GOSUB 6830:RETURN
  676. 6760  IF Z$="1"OR Z$="2"THEN GOSUB 6830:GOTO 6780
  677. 6770  GOTO 6750
  678. 6780  FOR QX=1 TO 24:FOR QY=1 TO 80
  679. 6790  LPRINT CHR$(SCREEN(QX,QY));
  680. 6800  NEXT QY:NEXT QX
  681. 6810  IF Z$="2"THEN LPRINT CHR$(12)
  682. 6820  GOTO 6720
  683. 6830  LOCATE 25,1:PRINT STRING$(80,32);:RETURN
  684.